package com.kapcb.statemachine;

/**
 * <a>Title: Action </a>
 * <a>Author: Kapcb <a>
 * <a>Description: Generic strategy interface used by a state machine to respond
 * events by executing an {@code Action} with a {@link StateContext}.
 * <a>
 *
 * @author Kapcb
 * @version 1.0
 * @date 2024/7/11 20:13
 * @since 1.0
 */
public interface Action<S, E, C> {

//    /**
//     * Execute action with a {@link StateContext}.
//     *
//     * @param context the state context
//     */
//    void execute(StateContext<S, E> context);
    void execute(S from, S to, E event, C context);

}
